import { expectType } from 'tsd';
import { RotateCW, RotateCCW } from '.';

expectType<
  RotateCW<
    [
      // Matrix
      [1, 2, 3],
      [4, 5, 6],
      [7, 8, 9],
    ]
  >
>([
  [7, 4, 1],
  [8, 5, 2],
  [9, 6, 3],
]);
expectType<
  RotateCW<
    [
      // Matrix
      [5, 1, 9, 11],
      [2, 4, 8, 10],
      [13, 3, 6, 7],
      [15, 14, 12, 16],
    ]
  >
>([
  [15, 13, 2, 5],
  [14, 3, 4, 1],
  [12, 6, 8, 9],
  [16, 7, 10, 11],
]);

expectType<
  RotateCCW<
    [
      // Matrix
      [1, 2, 3],
      [4, 5, 6],
      [7, 8, 9],
    ]
  >
>([
  [3, 6, 9],
  [2, 5, 8],
  [1, 4, 7],
]);
expectType<
  RotateCCW<
    [
      // Matrix
      [5, 1, 9, 11],
      [2, 4, 8, 10],
      [13, 3, 6, 7],
      [15, 14, 12, 16],
    ]
  >
>([
  [11, 10, 7, 16],
  [9, 8, 6, 12],
  [1, 4, 3, 14],
  [5, 2, 13, 15],
]);
